import { getUserList } from '@/api/user';
export default {
  // 调用model是通过name调用，不要重名
  namespace: 'user',

  // 数据状态
  state: {
    list: [],
  },

  // 副作用，一般用于处理服务端接口，获取数据
  effects: {
    *fetchUserList({ payload, callback }, { call, put }) {
      // 调用接口获取数据
      const { list } = yield call(getUserList, payload.id);
      // 调用reducer更新数据
      yield put({
        type: 'setUserList',
        payload: list,
      });
    },
  },

  // 更新state状态
  reducers: {
    setUserList(state, action) {
      console.log(action);

      // return {
      //   ...state,
      //   list: action.payload,
      // };

      // 启用 immer 之后上面的写法也可以这样写
      state.list = action.payload;
    },
  },
};
